class: center, middle, inverse, title-slide .title[ # Visualizando datos con el paquete ggplot2 ] .subtitle[ ## Dirección Nacional de Estadística Criminal - Ministerio de Seguridad ] --- <style type="text/css"> .remark-slide-content { font-size: 25px; padding: 1em 1em 1em 1em; } <style type="text/css"> .remark-code{ line-height: 1.5; font-size: 80% } @media print { .has-continuation { display: block; } } </style> # Hoja de ruta <br> ## ✔️ ¿Por qué visualizar? ## ✔️ Estructura del código para visualizar ## ✔️ Paqueete `{ggplot2}` ☑️️ `operador + -más- (nos va a permitir incorporar capas -como lo hacía el pipe %>%-) ` ☑️️ `geom_col()` ☑️️ `chapa y pintura (Atributos)` --- # Referencia bibliográfica <br><br> - [Ciencia de Datos para gente sociable - Antonio Vazquez Brust](https://bitsandbricks.github.io/ciencia_de_datos_gente_sociable/visualizaci%C3%B3n.html) - [ggplot2: Elegant Graphics for Data Analysis (_ggplot2: Gráficos elegantes para el análisis de datos_)](https://ggplot2-book.org/) - [The Grammar of Graphics - Leland Wilkinson ](https://books.google.com.mx/books?id=_kRX4LoFfGQC&hl=es&source=gbs_similarbooks) --- # Hasta ahora <img src="data:image/png;base64,#img/flujo_de_trabajo_viz.png" width="80%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # ¿Por qué visualizar? <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # ¿Por qué visualizar? <br> - _"La visualización es el proceso de hacer visibles los contrastes, ritmos y eventos que los datos expresan, que no podemos percibir cuando vienen en forma de áridas listas de números y categorías."_ [^1] <br> - Interpretar / decodificar la información de forma visual <br> [^1]: https://bitsandbricks.github.io/ciencia_de_datos_gente_sociable/visualizacion.html --- # ¿Por qué visualizar? .pull-left[
mes
cantidad_victimas
1
578
2
485
3
326
4
264
5
320
6
325
7
297
8
354
9
344
10
391
11
409
12
401
] -- .pull-right[ <!-- --> ] --- class: middle, center, inverse <img src="data:image/png;base64,#img/ggplot_icon.png" width="20%" style="display: block; margin: auto;" /> _<p style="color:grey;" align:"center">Una forma de visualizar</p>_ --- class: inverse, middle, center # ¿Qué es [ggplot2](https://ggplot2.tidyverse.org/)? <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # __¿Qué es ggplot2?__ <br> - ### Una implementación del sistema **Grammar of graphics** (_Gramática de los gráficos_) <br> -- - ### Un esquema pensado en capas (datos --> plano (ejes **x** e **y**) --> geometrías) <br> -- - ### Un paquete de funciones de aplicación intuitiva. --- # Gramática de los gráficos <img src="data:image/png;base64,#img/ggplot_capas.jpg" width="60%" style="display: block; margin: auto;" /> --- # Gráficos en clave de capas <img src="data:image/png;base64,#img/gramatica_de_los_graficos.png" width="70%" style="display: block; margin: auto;" /> --- # ggplot() <img src="data:image/png;base64,#img/ggplot2_esquema.png" width="70%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # __geom_col()__ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # geom_col() ### Caso: Quiero conocer el mes con más muertes en accidentes viales em la provincia de Córdoba para el año 2019 ```r snic_cba_2019_viales <- base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 3) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) ``` --- # geom_col() ### Obtenemos la siguiente tabla: ```r snic_cba_2019_viales ``` ``` # A tibble: 12 x 2 mes cantidad_victimas <dbl> <dbl> 1 1 29 2 2 32 3 3 37 4 4 37 5 5 28 6 6 22 7 7 23 8 8 39 9 9 33 10 10 24 11 11 22 12 12 40 ``` --- # Capas del gráfico - insumo(dataframe) .pull-left[ ```r ggplot(`data = snic_cba_2019_viales`) ``` <br> - **¿De donde saco las variables?** ] .pull-right[ <!-- --> ] --- # Capas del gráfico - coordenadas .pull-left[ ```r ggplot(data = snic_cba_2019_viales, `mapping = aes(x = mes,` `y = cantidad_victimas))` ``` <br> - **¿Qué variables? ¿Cómo me las imagino en el gráfico?** ] .pull-right[ <!-- --> ] --- # Capas del gráfico - geometría .pull-left[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + `geom_col()` ``` <br> - **¿Qué tipo de gráfico quiero hacer?** ] .pull-right[ <!-- --> ] --- # Chapa y pintura (Atributos) <br><br> ☑️️ `fill()` (_Rellenar_) ☑️️ `colour()` (_colorear_) ☑️️ `alpha` (_transparencia_) --- # relleno .pull-left[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(`fill = "salmon"`) ``` <br> - **Relleno** ] .pull-right[ <!-- --> ] --- # Contorno .pull-left[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "salmon", `colour = "black"`) ``` <br> - **Contorno** ] .pull-right[ <!-- --> ] --- # Transparencia .pull-left[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "salmon", colour = "black", `alpha = 0.5`) ``` <br> - **Transparencia** ] .pull-right[ <!-- --> ] --- class: inverse, middle, center # _PRÁCTICA_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- class: inverse, middle # Práctica 1) Importar la base del SNIC. 2) El siguiente código debería realizar un gráfico de columnas. Para ello hace falta completar aquellos espacios con **______** y ejecutarlo: ```r ggplot(data = ______, mapping = aes(x = mes, y = cantidad_victimas)) ______ geom_______(fill = ______, colour = "black", alpha = 0.5) ``` 3) Replicar el código anterior y modificar los valores de los atributos a gusto --- class: inverse, middle, center # __chapa y pintura__ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- count: false # geom_col .panel1-geom_col_3-auto[ ```r *ggplot(data = snic_cba_2019_viales, * mapping = aes(x = mes, * y = cantidad_victimas)) ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + * geom_col(fill = "salmon", * colour = "black", * alpha = 0.9) ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "salmon", colour = "black", alpha = 0.9) + * coord_flip() ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "salmon", colour = "black", alpha = 0.9) + coord_flip() + * labs(title = "Este es el título del gráfico", * subtitle = "Y este, el subtítulo", * x = "Acá puedo editar texto de eje x", * y = "y acá texto de eje y", * fill = "leyenda? Por supuesto, acá") ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "salmon", colour = "black", alpha = 0.9) + coord_flip() + labs(title = "Este es el título del gráfico", subtitle = "Y este, el subtítulo", x = "Acá puedo editar texto de eje x", y = "y acá texto de eje y", fill = "leyenda? Por supuesto, acá") + * geom_text(aes(label = cantidad_victimas)) ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = snic_cba_2019_viales, mapping = aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "salmon", colour = "black", alpha = 0.9) + coord_flip() + labs(title = "Este es el título del gráfico", subtitle = "Y este, el subtítulo", x = "Acá puedo editar texto de eje x", y = "y acá texto de eje y", fill = "leyenda? Por supuesto, acá") + geom_text(aes(label = cantidad_victimas)) + * theme_minimal() ``` ] .panel2-geom_col_3-auto[ <!-- --> ] <style> .panel1-geom_col_3-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_3-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_3-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: inverse, middle, center # Variables de tipo factor <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # Orden de las categorías - Para darle orden a las categorías en un eje podemos recurrir al tipo de variable **factor**. -- - Los factores en R son variables categóricas (o llamadas "cualitativas"). -- - Otra propiedad de las variables de tipo **factor** es la ordinalidad (no es indistinto el orden de aparición). --- # Orden de las categorías ```r edad <- c(24,54,75,25,65,12) sexo_num <- c(1, 2, 2, 2, 1, 2) sexo_text <- c("hombre", "mujer", "mujer", "mujer", "hombre", "mujer") base <- data.frame(edad, sexo_num, sexo_text) ``` ```r class(base$sexo_num) ``` ``` [1] "numeric" ``` -- ```r class(base$sexo_text) ``` ``` [1] "character" ``` --- # Orden de las categorías - Convertimos en factor a la variable _sexo_num_ ```r base <- base %>% mutate(sexo_factor = factor(sexo_num, levels = c(1, 2), labels = c("Varón", "Mujer"))) ``` -- ```r base %>% count(sexo_factor) ``` ``` sexo_factor n 1 Varón 2 2 Mujer 4 ``` -- ### ¿Qué pasa si invierto el orden de los niveles (categorías) en el parámetro `level = `? --- # geom_col - factor count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r *base_snic ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 1,390,553 x 13 anio provinc~1 provi~2 dpto_id dpto_~3 codig~4 codig~5 mes victi~6 victi~7 <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> 1 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 1 1 0 2 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 2 2 0 3 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 3 2 0 4 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 4 1 2 5 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 5 5 0 6 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 6 1 1 7 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 7 2 0 8 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 8 2 0 9 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 9 1 0 10 2017 2 Ciudad~ 02001 Comuna~ 1 Homici~ 10 2 1 # ... with 1,390,543 more rows, 3 more variables: victimas_no_consta <dbl>, # cantidad_victimas <dbl>, cantidad_hechos <dbl>, and abbreviated variable # names 1: provincia_id, 2: provincia_nombre, 3: dpto_nombre, # 4: codigo_delito_snic_id, 5: codigo_delito_snic_nombre, # 6: victimas_masculino, 7: victimas_femenino # i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% * filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 312 x 13 anio provinc~1 provi~2 dpto_id dpto_~3 codig~4 codig~5 mes victi~6 victi~7 <dbl> <dbl> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> 1 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 1 0 0 2 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 2 1 0 3 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 3 0 0 4 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 4 0 0 5 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 5 0 0 6 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 6 0 0 7 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 7 0 0 8 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 8 0 0 9 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 9 0 0 10 2019 14 Córdoba 14007 Calamu~ 1 Homici~ 10 0 0 # ... with 302 more rows, 3 more variables: victimas_no_consta <dbl>, # cantidad_victimas <dbl>, cantidad_hechos <dbl>, and abbreviated variable # names 1: provincia_id, 2: provincia_nombre, 3: dpto_nombre, # 4: codigo_delito_snic_id, 5: codigo_delito_snic_nombre, # 6: victimas_masculino, 7: victimas_femenino # i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% * select(mes, cantidad_victimas) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 312 x 2 mes cantidad_victimas <dbl> <dbl> 1 1 0 2 2 1 3 3 0 4 4 0 5 5 0 6 6 0 7 7 0 8 8 0 9 9 0 10 10 0 # ... with 302 more rows # i Use `print(n = ...)` to see more rows ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% * mutate(mes = factor(x = mes, * levels = c(1:12), * labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", * "Junio", "Julio", "Agosto", "Septiembre", * "Octubre", "Noviembre", "Diciembre"))) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 312 x 2 mes cantidad_victimas <fct> <dbl> 1 Enero 0 2 Febrero 1 3 Marzo 0 4 Abril 0 5 Mayo 0 6 Junio 0 7 Julio 0 8 Agosto 0 9 Septiembre 0 10 Octubre 0 # ... with 302 more rows # i Use `print(n = ...)` to see more rows ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% * group_by(mes) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 312 x 2 # Groups: mes [12] mes cantidad_victimas <fct> <dbl> 1 Enero 0 2 Febrero 1 3 Marzo 0 4 Abril 0 5 Mayo 0 6 Junio 0 7 Julio 0 8 Agosto 0 9 Septiembre 0 10 Octubre 0 # ... with 302 more rows # i Use `print(n = ...)` to see more rows ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% * summarise(cantidad_victimas = sum(cantidad_victimas)) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 12 x 2 mes cantidad_victimas <fct> <dbl> 1 Enero 11 2 Febrero 18 3 Marzo 9 4 Abril 10 5 Mayo 7 6 Junio 8 7 Julio 7 8 Agosto 12 9 Septiembre 11 10 Octubre 11 11 Noviembre 4 12 Diciembre 14 ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) %>% * ggplot(aes(x = mes, y = cantidad_victimas)) ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) %>% ggplot(aes(x = mes, y = cantidad_victimas)) + * geom_col(fill = "brown", colour = "black", alpha = 0.8) ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + * labs(title = "Cantidad de víctimas por homicidio doloso en la provincia de Córdoba", * subtitle = "Año 2019.", * x = "Mes", * y = "Cantidad de víctimas", * source = "Fuente: Elaboración propia en base a SNIC") ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + labs(title = "Cantidad de víctimas por homicidio doloso en la provincia de Córdoba", subtitle = "Año 2019.", x = "Mes", y = "Cantidad de víctimas", source = "Fuente: Elaboración propia en base a SNIC") + * geom_text(aes(label = cantidad_victimas), * vjust = -0.5) ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r base_snic %>% filter(provincia_nombre == "Córdoba" & anio == 2019 & codigo_delito_snic_id == 1) %>% select(mes, cantidad_victimas) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + labs(title = "Cantidad de víctimas por homicidio doloso en la provincia de Córdoba", subtitle = "Año 2019.", x = "Mes", y = "Cantidad de víctimas", source = "Fuente: Elaboración propia en base a SNIC") + geom_text(aes(label = cantidad_victimas), vjust = -0.5) + * theme_minimal() ``` ] .panel2-geom_col_4-auto[ <!-- --> ] <style> .panel1-geom_col_4-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_4-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_4-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- # geom_col + Variable con faceteado ```r tabla_facet <- base_snic %>% filter(anio == 2019 & codigo_delito_snic_id == 1) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(provincia_nombre, mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) ``` -- ```r tabla_facet %>% head(2) ``` ``` # A tibble: 2 x 3 # Groups: provincia_nombre [1] provincia_nombre mes cantidad_victimas <chr> <fct> <dbl> 1 Buenos Aires Enero 89 2 Buenos Aires Febrero 84 ``` --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r *tabla_facet ``` ] .panel2-geom_col_5-auto[ ``` # A tibble: 300 x 3 # Groups: provincia_nombre [25] provincia_nombre mes cantidad_victimas <chr> <fct> <dbl> 1 Buenos Aires Enero 89 2 Buenos Aires Febrero 84 3 Buenos Aires Marzo 93 4 Buenos Aires Abril 53 5 Buenos Aires Mayo 60 6 Buenos Aires Junio 67 7 Buenos Aires Julio 47 8 Buenos Aires Agosto 73 9 Buenos Aires Septiembre 84 10 Buenos Aires Octubre 76 # ... with 290 more rows # i Use `print(n = ...)` to see more rows ``` ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% * ggplot(aes(x = mes, y = cantidad_victimas)) ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = mes, y = cantidad_victimas)) + * geom_col(fill = "brown", colour = "black", alpha = 0.8) ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + * labs(title = "Cantidad de víctimas por homicidio dolos por provincia", * subtitle = "Año 2019.", * x = "Mes", * y = "Cantidad de víctimas", * source = "Fuente: Elaboración propia en base a SNIC") ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + labs(title = "Cantidad de víctimas por homicidio dolos por provincia", subtitle = "Año 2019.", x = "Mes", y = "Cantidad de víctimas", source = "Fuente: Elaboración propia en base a SNIC") + * theme_minimal() ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + labs(title = "Cantidad de víctimas por homicidio dolos por provincia", subtitle = "Año 2019.", x = "Mes", y = "Cantidad de víctimas", source = "Fuente: Elaboración propia en base a SNIC") + theme_minimal() + * coord_flip() ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = mes, y = cantidad_victimas)) + geom_col(fill = "brown", colour = "black", alpha = 0.8) + labs(title = "Cantidad de víctimas por homicidio dolos por provincia", subtitle = "Año 2019.", x = "Mes", y = "Cantidad de víctimas", source = "Fuente: Elaboración propia en base a SNIC") + theme_minimal() + coord_flip() + * facet_wrap(facets = "provincia_nombre") ``` ] .panel2-geom_col_5-auto[ <!-- --> ] <style> .panel1-geom_col_5-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_5-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_5-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: inverse, middle, center # _PRÁCTICA_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- class: inverse, middle # Práctica 1. Correr el siguiente código para armar la tabla con los datos a graficar: ```r tabla_ejercicio <- base_snic %>% filter(provincia_nombre == "Neuquén", anio == 2019 & codigo_delito_snic_id == 3) %>% mutate(mes = factor(x = mes, levels = c(1:12), labels = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"))) %>% group_by(mes) %>% summarise(cantidad_victimas = sum(cantidad_victimas)) ``` --- class: inverse, middle # Práctica 2. Identificar los errores en la siguiente sentencia, corregirlo y correr el gráfico. 3. Una vez corregido, modificar parámetros a gusto y corroborar los cambios en el gráfico. ```r ggplot(data = cantidad_victimas, aes(x = tabla_ejercicio, y = mes)) + geom_col(fill = tabla_ejercicio, colour = 0.7, alpha = "black") + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + geom_text(aes(label = sup_media), vjust = -0.5) + theme_minimal() ``` --- class: inverse, middle, center # _RECURSOS_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # Recursos - Enciclopedia de gráficos (y código): [data-to-viz project](https://www.data-to-viz.com/) - Paleta de colores con [ColorBrewer](https://colorbrewer2.org/#type=sequential&scheme=BuGn&n=3) - Taller ["Drawing Anything with ggplot2"](https://www.youtube.com/watch?v=h29g21z0a68) (en inglés) - Tutoriales para armar (lindos) gráficos en [ggplot2tor](https://ggplot2tor.com/)